#ifndef TCPMGR_H
#define TCPMGR_H

#include <QObject>
#include "singleton.h"
#include <QTcpSocket>
#include "global.h"


/**
 *
 * 管理TCP连接的客户端代码
 * 负责：socket connect ,数据接受，数据解包，数据封包，短线处理，错误处理等
 *
 *
*/
class TCPMgr : public QObject,public Singleton<TCPMgr> ,public std::enable_shared_from_this<TCPMgr>
{

    Q_OBJECT
public:
    TCPMgr();

private:

    QTcpSocket _socket;         //管理连接的socket
    QString _host;
    uint16_t _port;
    QByteArray _buffer;         //缓冲区


public slots:

    //登录界面通知到我进行连接
    void solt_tcp_connect(ServerInfo si);    //chat服务器的ip,port,等之类的东西，描述server的信息使用ServerInfo保存

    //连接之后的回调
    void slot_tcp_connect_finish();



private:
};

#endif // TCPMGR_H
